// Name:            Drop
// Description:     Component to position any element next to any other element.
//
// Component:       `uk-drop`
//
// Modifiers:       `uk-drop-top-*`
//                  `uk-drop-bottom-*`
//                  `uk-drop-left-*`
//                  `uk-drop-right-*`
//                  `uk-drop-stack`
//                  `uk-drop-grid`
//
// States:          `uk-open`
//
// Uses:            Animation
//
// ========================================================================


// Variables
// ========================================================================

@drop-z-index:                              @global-z-index + 20;
@drop-width:                                300px;
@drop-margin:                               @global-margin;


/* ========================================================================
   Component: Drop
 ========================================================================== */

/*
 * 1. Hide by default
 * 2. Set position
 * 3. Set a default width
 */

.uk-drop {
    /* 1 */
    display: none;
    /* 2 */
    position: absolute;
    z-index: @drop-z-index;
    /* 3 */
    box-sizing: border-box;
    width: @drop-width;
}

/* Show */
.uk-drop.uk-open { display: block; }


/* Direction / Alignment modifiers
 ========================================================================== */

/* Direction */
[class*='uk-drop-top'] { margin-top: -@drop-margin; }
[class*='uk-drop-bottom'] { margin-top: @drop-margin; }
[class*='uk-drop-left'] { margin-left: -@drop-margin; }
[class*='uk-drop-right'] { margin-left: @drop-margin; }


/* Grid modifiers
 ========================================================================== */

.uk-drop-stack .uk-drop-grid > * { width: 100% !important; }


// Hooks
// ========================================================================

.hook-drop-misc;

.hook-drop-misc() {}
